home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / listings / v_12_01 / saks / abshape.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-11-07  |  449 b   |  21 lines

  1. Listing 7 - An abstract base class for shapes
  2.  
  3. class shape
  4.     {
  5. public:
  6.     enum palette { BLUE, GREEN, RED };
  7.     shape(palette c);
  8.     virtual double area() const = 0;
  9.     virtual const char *name() const = 0;
  10.     virtual ostream &put(ostream &os) const = 0;
  11.     palette color() const;
  12. private:
  13.     palette _color;
  14.     static const char *color_image[RED - BLUE + 1];
  15.     };
  16.  
  17. inline ostream &operator<<(ostream &os, const shape &s)
  18.     {
  19.     return s.put(os);
  20.     }
  21.